package com.ar.nanoapps.tuDelivery;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.dao.SqlLiteHelper;

public class DetalleNegocio extends Activity {

	@Override
	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.detalle_negocio);

		// TOMO EL ID DEL NEGOCIO A MOSTRAR
		String idNegocio = getIntent().getExtras().getString("idNegocio");

		// BUSCO EL NEGOCIO EN LA BASE DE DATOS
		SqlLiteHelper sqlLiteHelper = new SqlLiteHelper(this);
		SQLiteDatabase db = sqlLiteHelper.getIntance();

		String[] columns = { "_id", "nombre", "descripcion", "direccion",
				"telefono", "horario", "web", "es_favorita","_id_categoria" };
		String whereClause = "_id=" + idNegocio;
		Cursor c = db.query("negocio", columns, whereClause, null, null, null,
				null, null);
		startManagingCursor(c);

		// SETEO EN LA VISTA LOS VALORES DEL NEGOCIO
		TextView categoria = (TextView) findViewById(R.id.textView_categoria);
		TextView nombre = (TextView) findViewById(R.id.textView_nombre);
		TextView descripcion = (TextView) findViewById(R.id.textView_descripcion);
		TextView direccion = (TextView) findViewById(R.id.textView_direccion);
		TextView telefono_horario = (TextView) findViewById(R.id.textView_telefono_horario);
		TextView web = (TextView) findViewById(R.id.textView_web);

		// BOTONES DE LA PANTALLA DE DETALLE
		Button button_favorito = (Button) findViewById(R.id.button_favorito);
		Button button_llamar = (Button) findViewById(R.id.button_llamar);
		Button button_localizar = (Button) findViewById(R.id.button_localizar);
		Button button_agregarContacto = (Button) findViewById(R.id.button_agregarContacto);

		if (c != null) {
			while (c.moveToNext()) {
				
				String id_categoria = c.getString(8);
				String nombreCategoria = "";
				
				//SE BUSCA EL NOMBRE DE LA CATEGORIA
				String[] columnsCat = { "_id", "nombre"};
				String whereClauseCat = "_id=" + id_categoria;
				Cursor cCat = db.query("categoria", columnsCat, whereClauseCat, null, null, null,
						null, null);
				startManagingCursor(cCat);
				if (cCat != null) {
					while (cCat.moveToNext()) {
						nombreCategoria = cCat.getString(1);
					}
				}	
				
				nombre.setText(c.getString(1));
				categoria.setText(nombreCategoria);
				descripcion.setText(c.getString(2));
				direccion.setText(c.getString(3));
				telefono_horario.setText(c.getString(4) + " - " + c.getString(5));
				web.setText(c.getString(6));
			
				if(c.getString(7).equalsIgnoreCase("1")){
					 button_favorito.setBackgroundResource(R.drawable.favorite);
				}else{
					 button_favorito.setBackgroundResource(R.drawable.no_favorite);
				}

				AppState appState = ((AppState) getApplicationContext());
				appState.setIdNegocio(c.getString(0));
				appState.setEsFavorito(c.getString(7));
			}
		}
		
		// ACCIONES DE LOS BOTONES DE LA PANTALLA

		// BOTON VOLVER A LA PANTALLA ANTERIOR
		Button botonVolver = (Button) findViewById(R.id.button_atras);
		botonVolver.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				finish();
			}
		});

		// BOTON VOLVER AL HOME DE LA APLICACION
		Button botonVolverHome = (Button) findViewById(R.id.button_home);
		botonVolverHome.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				Intent i = new Intent(DetalleNegocio.this,
						TuDeliveryActivity.class);
				startActivity(i);
			}
		});

		// BOTON SETEAR COMO FAVORITA
		button_favorito.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {

				Button button_favorito = (Button) findViewById(R.id.button_favorito);

				AppState appState = ((AppState) getApplicationContext());
				String id = appState.getIdNegocio();
				String esFavorita = appState.getEsFavorito();

				SqlLiteHelper sqlLiteHelper = new SqlLiteHelper(DetalleNegocio.this);
				SQLiteDatabase db = sqlLiteHelper.getIntance();

				if (esFavorita.equalsIgnoreCase("1")) {
					button_favorito.setBackgroundResource(R.drawable.no_favorite);
					final String UPDATE = "UPDATE negocio set telefono=0 WHERE _id="+id; 
                    db.execSQL(UPDATE);
					appState.setEsFavorito("0");
				} else {
					button_favorito.setBackgroundResource(R.drawable.favorite);
					final String UPDATE = "UPDATE negocio set telefono=1 WHERE _id="+id; 
                    db.execSQL(UPDATE);
				    appState.setEsFavorito("1");
				}
			}
		});

		// BOTON LLAMAR AL NEGOCIO
		button_llamar.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {

				String idNegocio = getIntent().getExtras().getString("idNegocio");
				SqlLiteHelper sqlLiteHelper = new SqlLiteHelper(DetalleNegocio.this);
				SQLiteDatabase db = sqlLiteHelper.getIntance();

				String whereClause = "_id=" + idNegocio;
				String[] columns = { "_id", "telefono" };
				Cursor c = db.query("negocio", columns, whereClause, null,null, null, null, null);
				startManagingCursor(c);

				if (c != null) {
					while (c.moveToNext()) {
						Intent callIntent = new Intent(Intent.ACTION_CALL);
						callIntent.setData(Uri.parse("tel:" + c.getString(1)));
						startActivity(callIntent);
					}
				}
			}
		});

		// BOTON MOSTRAR EL NEGOCIO EN EL MAPA
		button_localizar.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
		    	try{
		    		Intent i = new Intent(DetalleNegocio.this,Mapa.class);
			    	startActivity(i);
		    	}catch(Exception e){}
			}
		});

		// BOTON AGREGAR EL NEGOCIO A CONTACTOS
		button_agregarContacto.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				
				String idNegocio = getIntent().getExtras().getString("idNegocio");
				SqlLiteHelper sqlLiteHelper = new SqlLiteHelper(DetalleNegocio.this);
				SQLiteDatabase db = sqlLiteHelper.getIntance();

				String whereClause = "_id=" + idNegocio;
				String[] columns = { "_id", "nombre","telefono" };
				Cursor c = db.query("negocio", columns, whereClause, null,null, null, null, null);
				startManagingCursor(c);

				if (c != null) {
					while (c.moveToNext()) {
						
						//Instancio la pantalla para agregar el contacto
				    	Intent intent = new Intent(Intent.ACTION_INSERT);
				    	intent.setType(ContactsContract.Contacts.CONTENT_TYPE);

				    	// le paso los datos al formulario.
				    	intent.putExtra(ContactsContract.Intents.Insert.NAME, c.getString(1));
				    	intent.putExtra(ContactsContract.Intents.Insert.PHONE, c.getString(2));

				    	// Send with it a unique request code, so when you get called back, you can
				    	// check to make sure it is from the intent you launched (ideally should be
				    	// some public static final so receiver can check against it)
				    	int PICK_CONTACT = 100;
				    	startActivityForResult(intent, PICK_CONTACT);
					}
				}
			}
		});
		
	};
}
